home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 010 / ebanner.arc / EBANNER.BAS
BASIC Source File  |  1985-05-26  |  5KB  |  56 lines

  1. 20 SCREEN 0,0,0,0:COLOR 7,0,0:CLOSE:CLEAR:OPTION BASE 1:DEFINT A-Z:DIM CH(128,5):COL=80:HHIGH=1:HWIDE=1:VHIGH=10:VWIDE=4:GOSUB 142
  2. 30 READ TEMP$:IF TEMP$="END" THEN 50 ELSE TEMP=ASC(TEMP$)
  3. 40 FOR LOOP=1 TO 5:READ CH(TEMP,LOOP):NEXT:GOTO 30
  4. 50 GOSUB 142::PRINT:PRINT:PRINT:PRINT"<H>orizontal printing":PRINT"<V>ertical printing":PRINT"<C>hange character style":PRINT"<E>xit EBANNER":PRINT:PRINT:PRINT
  5. 60 PRINT"Pick one: ";:GOOD$="HVCE":GOSUB 130:PRINT KY$:IF KY$="E" THEN END ELSE IF KY$="H" THEN 240 ELSE IF KY$="C" THEN 150
  6. 70 CLS:LINE INPUT"Enter null to return to menu.  Message? ";MSG$:IF MSG$="" THEN 50 ELSE GOSUB 220
  7. 80 LPRINT:FOR CHNR=1 TO LEN(MSG$)
  8. 90 FOR PIXEL=1 TO 5:FOR WID=1 TO VWIDE:FOR BINARY=6 TO 0 STEP -1:DECODE=2^BINARY
  9. 100 CH$=" ":IF CH(ASC(MID$(MSG$,CHNR,1)),PIXEL) AND DECODE THEN IF BLD THEN CH$=CHR$(BLD) ELSE CH$=MID$(MSG$,CHNR,1):IF CH$="a" THEN CH$=CHR$(34)
  10. 110 LPRINT STRING$(VHIGH,CH$);:NEXT BINARY:LPRINT:NEXT WID
  11. 120 NEXT PIXEL:FOR WID=1 TO VWIDE:LPRINT:LPRINT:NEXT WID:NEXT CHNR:GOTO 70
  12. 130 KY$=INKEY$:IF KY$="" THEN 130 ELSE IF KY$>="a" AND KY$<="z" THEN KY$=CHR$(ASC(KY$)-32) ELSE IF KY$<" " AND ASC(KY$)<>13 OR ASC(KY$)=127 THEN 130
  13. 140 IF INSTR(GOOD$,KY$)>0 OR GOOD$="" THEN RETURN ELSE 130
  14. 142 CLS:PRINT"EBANNER 1.0 -- <Eclectic Software> -- Thomas G. Hanlin III -- 5/23/84":RETURN
  15. 150 CLS:PRINT TAB(26)"Character Style Modification":LOCATE 4,1
  16. 160 PRINT"Characters per line of printer ("COL;:INPUT") : ",TMP:IF TMP<32 AND TMP<>0 OR TMP>132 THEN PRINT"--between 32 and 132, please!":GOTO 160 ELSE PRINT:PRINT"Horizontal printing--":IF TMP THEN COL=TMP
  17. 170 PRINT"Height ("HHIGH;:INPUT") : ",TMP:IF TMP<0 OR TMP>20 THEN PRINT"--try again":GOTO 170 ELSE IF TMP THEN HHIGH=TMP
  18. 180 PRINT"Width ("HWIDE;:INPUT") : ",TMP:IF TMP<0 OR TMP>COL THEN PRINT"--I don't think so...":GOTO 180 ELSE PRINT:PRINT"Vertical printing--":IF TMP THEN HWIDE=TMP
  19. 190 PRINT"Height ("VHIGH;:INPUT") : ",TMP:IF TMP<0 OR TMP>COL THEN PRINT"--invalid entry":GOTO 190 ELSE IF TMP THEN VHIGH=TMP
  20. 200 PRINT"Character width ("VWIDE;:INPUT") : ",TMP:IF TMP<0 OR TMP>COL*2 THEN PRINT"--uh uh.  Try again.":GOTO 200 ELSE IF TMP THEN VWIDE=TMP
  21. 205 PRINT:PRINT"EBANNER characters can be made up of their usual-sized counterparts, or out of":PRINT"any other character you choose.  Press <CR> (the "CHR$(34)"carriage return"CHR$(34)" key) to"
  22. 207 PRINT"use each character to build itself, or press the character to use instead:":GOOD$="":GOSUB 130:PRINT KY$:BLD=ASC(KY$):IF BLD=13 THEN BLD=0
  23. 210 GOTO 50
  24. 220 FOR LOOP=1 TO LEN(MSG$):CH$=MID$(MSG$,LOOP,1):IF CH$>="a" AND CH$<="z" THEN CH$=CHR$(ASC(CH$)-32) ELSE IF ASC(CH$)=34 THEN CH$="a"
  25. 230 MID$(MSG$,LOOP,1)=CH$:NEXT:RETURN
  26. 240 CLS:PRINT"Maximum line length =";COL\8*HWIDE:LINE INPUT"Enter null to return to menu.  Message? ";MSG$:IF LEN(MSG$)*8*HWIDE>COL THEN PRINT"Too long!  Try again!":PRINT:GOTO 240 ELSE IF MSG$="" THEN 50 ELSE GOSUB 220
  27. 250 FOR BINARY=0 TO 6:DECODE=2^BINARY:PMSG$="":FOR CHNR=1 TO LEN(MSG$):FOR PIXEL=1 TO 5
  28. 260 CH$=" ":IF CH(ASC(MID$(MSG$,CHNR,1)),PIXEL) AND DECODE THEN IF BLD THEN CH$=CHR$(BLD) ELSE CH$=MID$(MSG$,CHNR,1):IF CH$="a" THEN CH$=CHR$(34)
  29. 270 PMSG$=PMSG$+STRING$(HWIDE,CH$):NEXT PIXEL:PMSG$=PMSG$+STRING$(HWIDE*3,32):NEXT CHNR:PMSG$=LEFT$(PMSG$,LEN(PMSG$)-HWIDE*3):FOR HI=1 TO HHIGH:LPRINT PMSG$:NEXT HI:NEXT BINARY
  30. 280 FOR HI=1 TO HHIGH*3:LPRINT:NEXT HI:GOTO 240
  31. 290 DATA A,124,10,9,10,124, B,127,73,73,73,54, C, 62,65,65,65,34
  32. 300 DATA D,127,65,65,65,62, E,127,73,73,73,65, F,127,9,9,9,1
  33. 310 DATA G,62,65,65,73,58, H,127,8,8,8,127, I,0,65,127,65,0
  34. 320 DATA J,48,64,64,64,63, K,127,8,20,34,65, L,127,64,64,64,64
  35. 330 DATA M,127,2,4,2,127, N,127,2,12,16,127, O,62,65,65,65,62
  36. 340 DATA P,127,9,9,9,6, Q,126,65,81,33,94, R,127,9,25,41,70
  37. 350 DATA S,70,73,73,73,49, T,1,1,127,1,1, U,63,64,64,64,63
  38. 360 DATA V,7,24,96,24,7, W,127,32,16,32,127, X,99,20,8,20,99
  39. 370 DATA Y,3,4,120,4,3, Z,97,81,73,69,67, " ",0,0,0,0,0
  40. 380 DATA "0",62,81,73,69,62, "1",0,66,127,64,0, "2",98,81,73,73,102
  41. 390 DATA "3",34,65,73,73,54, "4",24,20,18,127,16, "5",39,69,69,69,57
  42. 400 DATA "6",60,74,73,73,48, "7",1,113,9,5,3, "8",54,73,73,73,54
  43. 410 DATA "9",6,73,73,41,30, !,0,6,95,6,0, a,0,7,0,7,0
  44. 420 DATA #,20,127,20,127,20, $,36,42,127,42,18, %,35,19,8,100,98
  45. 430 DATA &,54,73,86,32,80, "'",0,0,11,7,0, "`",0,7,11,0,0
  46. 440 DATA _,64,64,64,64,64, |,0,0,127,0,0, ~,2,1,3,2,1
  47. 450 DATA {,8,8,54,65,65, },65,65,54,8,8, +,8,8,62,8,8
  48. 460 DATA (,0,28,34,65,0, ),0,65,34,28,0, *,42,28,127,28,42
  49. 470 DATA <,8,20,34,65,0, >,0,65,34,20,8, =,20,20,20,20,20
  50. 480 DATA -,8,8,8,8,8, /,32,16,8,4,2, \,2,4,8,16,32
  51. 490 DATA ":",0,54,54,0,0, ";",64,54,54,0,0, ^,4,2,1,2,4
  52. 500 DATA [,0,127,65,65,0, ],0,65,65,127,0, ".",0,96,96,0,0
  53. 510 DATA ",",0,88,56,0,0, ?,2,1,81,9,6, @,62,65,93,89,14
  54. 520 DATA END
  55. ATA [,0,127,65,65,0, ],0,65,65,127,0, ".",0,96,96,0,0
  56. 510 DATA ",",0,8